home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / CodeWarrior Lite / Metrowerks C⁄C++ Lite / Headers / Universal Headers 2.0.1f / MediaHandlers.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-22  |  8.4 KB  |  234 lines  |  [TEXT/MMCC]

  1. /*
  2.      File:        MediaHandlers.h
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.0
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. */
  19.  
  20. #ifndef __MEDIAHANDLERS__
  21. #define __MEDIAHANDLERS__
  22.  
  23.  
  24. #ifndef __MEMORY__
  25. #include <Memory.h>
  26. #endif
  27. /*    #include <Types.h>                                            */
  28. /*        #include <ConditionalMacros.h>                            */
  29. /*    #include <MixedMode.h>                                        */
  30.  
  31. #ifndef __IMAGECOMPRESSION__
  32. #include <ImageCompression.h>
  33. #endif
  34. /*    #include <Quickdraw.h>                                        */
  35. /*        #include <QuickdrawText.h>                                */
  36. /*    #include <QDOffscreen.h>                                    */
  37. /*        #include <Errors.h>                                        */
  38. /*    #include <Components.h>                                        */
  39. /*    #include <Windows.h>                                        */
  40. /*        #include <Events.h>                                        */
  41. /*            #include <OSUtils.h>                                */
  42. /*        #include <Controls.h>                                    */
  43. /*            #include <Menus.h>                                    */
  44. /*    #include <StandardFile.h>                                    */
  45. /*        #include <Dialogs.h>                                    */
  46. /*            #include <TextEdit.h>                                */
  47. /*        #include <Files.h>                                        */
  48.  
  49. #ifndef __MOVIES__
  50. #include <Movies.h>
  51. #endif
  52. /*    #include <Aliases.h>                                        */
  53. /*        #include <AppleTalk.h>                                    */
  54.  
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif
  58.  
  59. #if PRAGMA_ALIGN_SUPPORTED
  60. #pragma options align=mac68k
  61. #endif
  62.  
  63. #if PRAGMA_IMPORT_SUPPORTED
  64. #pragma import on
  65. #endif
  66.  
  67.  
  68. enum {
  69.     handlerHasSpatial            = 1 << 0,
  70.     handlerCanClip                = 1 << 1,
  71.     handlerCanMatte                = 1 << 2,
  72.     handlerCanTransferMode        = 1 << 3,
  73.     handlerNeedsBuffer            = 1 << 4,
  74.     handlerNoIdle                = 1 << 5,
  75.     handlerNoScheduler            = 1 << 6,
  76.     handlerWantsTime            = 1 << 7,
  77.     handlerCGrafPortOnly        = 1 << 8
  78. };
  79.  
  80. /* media task flags */
  81. enum {
  82.     mMustDraw                    = 1 << 3,
  83.     mAtEnd                        = 1 << 4,
  84.     mPreflightDraw                = 1 << 5,
  85.     mSyncDrawing                = 1 << 6
  86. };
  87.  
  88. /* media task result flags */
  89. enum {
  90.     mDidDraw                    = 1 << 0,
  91.     mNeedsToDraw                = 1 << 2,
  92.     mDrawAgain                    = 1 << 3,
  93.     mPartialDraw                = 1 << 4
  94. };
  95.  
  96. enum {
  97.     forceUpdateRedraw            = 1 << 0,
  98.     forceUpdateNewBuffer        = 1 << 1
  99. };
  100.  
  101. struct GetMovieCompleteParams {
  102.     short                            version;
  103.     Movie                            theMovie;
  104.     Track                            theTrack;
  105.     Media                            theMedia;
  106.     TimeScale                        movieScale;
  107.     TimeScale                        mediaScale;
  108.     TimeValue                        movieDuration;
  109.     TimeValue                        trackDuration;
  110.     TimeValue                        mediaDuration;
  111.     Fixed                            effectiveRate;
  112.     TimeBase                        timeBase;
  113.     short                            volume;
  114.     Fixed                            width;
  115.     Fixed                            height;
  116.     MatrixRecord                    trackMovieMatrix;
  117.     CGrafPtr                        moviePort;
  118.     GDHandle                        movieGD;
  119.     PixMapHandle                    trackMatte;
  120. };
  121. typedef struct GetMovieCompleteParams GetMovieCompleteParams;
  122.  
  123. extern pascal ComponentResult MediaInitialize(MediaHandler mh, GetMovieCompleteParams *gmc)
  124.  FIVEWORDINLINE(0x2F3C, 0x4, 0x501, 0x7000, 0xA82A);
  125. extern pascal ComponentResult MediaSetHandlerCapabilities(MediaHandler mh, long flags, long flagsMask)
  126.  FIVEWORDINLINE(0x2F3C, 0x8, 0x502, 0x7000, 0xA82A);
  127. extern pascal ComponentResult MediaIdle(MediaHandler mh, TimeValue atMediaTime, long flagsIn, long *flagsOut, const TimeRecord *movieTime)
  128.  FIVEWORDINLINE(0x2F3C, 0x10, 0x503, 0x7000, 0xA82A);
  129. extern pascal ComponentResult MediaGetMediaInfo(MediaHandler mh, Handle h)
  130.  FIVEWORDINLINE(0x2F3C, 0x4, 0x504, 0x7000, 0xA82A);
  131. extern pascal ComponentResult MediaPutMediaInfo(MediaHandler mh, Handle h)
  132.  FIVEWORDINLINE(0x2F3C, 0x4, 0x505, 0x7000, 0xA82A);
  133. extern pascal ComponentResult MediaSetActive(MediaHandler mh, Boolean enableMedia)
  134.  FIVEWORDINLINE(0x2F3C, 0x2, 0x506, 0x7000, 0xA82A);
  135. extern pascal ComponentResult MediaSetRate(MediaHandler mh, Fixed rate)
  136.  FIVEWORDINLINE(0x2F3C, 0x4, 0x507, 0x7000, 0xA82A);
  137. extern pascal ComponentResult MediaGGetStatus(MediaHandler mh, ComponentResult *statusErr)
  138.  FIVEWORDINLINE(0x2F3C, 0x4, 0x508, 0x7000, 0xA82A);
  139. extern pascal ComponentResult MediaTrackEdited(MediaHandler mh)
  140.  FIVEWORDINLINE(0x2F3C, 0, 0x509, 0x7000, 0xA82A);
  141. extern pascal ComponentResult MediaSetMediaTimeScale(MediaHandler mh, TimeScale newTimeScale)
  142.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50A, 0x7000, 0xA82A);
  143. extern pascal ComponentResult MediaSetMovieTimeScale(MediaHandler mh, TimeScale newTimeScale)
  144.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50B, 0x7000, 0xA82A);
  145. extern pascal ComponentResult MediaSetGWorld(MediaHandler mh, CGrafPtr aPort, GDHandle aGD)
  146.  FIVEWORDINLINE(0x2F3C, 0x8, 0x50C, 0x7000, 0xA82A);
  147. extern pascal ComponentResult MediaSetDimensions(MediaHandler mh, Fixed width, Fixed height)
  148.  FIVEWORDINLINE(0x2F3C, 0x8, 0x50D, 0x7000, 0xA82A);
  149. extern pascal ComponentResult MediaSetClip(MediaHandler mh, RgnHandle theClip)
  150.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50E, 0x7000, 0xA82A);
  151. extern pascal ComponentResult MediaSetMatrix(MediaHandler mh, MatrixRecord *trackMovieMatrix)
  152.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50F, 0x7000, 0xA82A);
  153. extern pascal ComponentResult MediaGetTrackOpaque(MediaHandler mh, Boolean *trackIsOpaque)
  154.  FIVEWORDINLINE(0x2F3C, 0x4, 0x510, 0x7000, 0xA82A);
  155. extern pascal ComponentResult MediaSetGraphicsMode(MediaHandler mh, long mode, const RGBColor *opColor)
  156.  FIVEWORDINLINE(0x2F3C, 0x8, 0x511, 0x7000, 0xA82A);
  157. extern pascal ComponentResult MediaGetGraphicsMode(MediaHandler mh, long *mode, RGBColor *opColor)
  158.  FIVEWORDINLINE(0x2F3C, 0x8, 0x512, 0x7000, 0xA82A);
  159. extern pascal ComponentResult MediaGSetVolume(MediaHandler mh, short volume)
  160.  FIVEWORDINLINE(0x2F3C, 0x2, 0x513, 0x7000, 0xA82A);
  161. extern pascal ComponentResult MediaSetSoundBalance(MediaHandler mh, short balance)
  162.  FIVEWORDINLINE(0x2F3C, 0x2, 0x514, 0x7000, 0xA82A);
  163. extern pascal ComponentResult MediaGetSoundBalance(MediaHandler mh, short *balance)
  164.  FIVEWORDINLINE(0x2F3C, 0x4, 0x515, 0x7000, 0xA82A);
  165. extern pascal ComponentResult MediaGetNextBoundsChange(MediaHandler mh, TimeValue *when)
  166.  FIVEWORDINLINE(0x2F3C, 0x4, 0x516, 0x7000, 0xA82A);
  167. extern pascal ComponentResult MediaGetSrcRgn(MediaHandler mh, RgnHandle rgn, TimeValue atMediaTime)
  168.  FIVEWORDINLINE(0x2F3C, 0x8, 0x517, 0x7000, 0xA82A);
  169. extern pascal ComponentResult MediaPreroll(MediaHandler mh, TimeValue time, Fixed rate)
  170.  FIVEWORDINLINE(0x2F3C, 0x8, 0x518, 0x7000, 0xA82A);
  171. extern pascal ComponentResult MediaSampleDescriptionChanged(MediaHandler mh, long index)
  172.  FIVEWORDINLINE(0x2F3C, 0x4, 0x519, 0x7000, 0xA82A);
  173. extern pascal ComponentResult MediaHasCharacteristic(MediaHandler mh, OSType characteristic, Boolean *hasIt)
  174.  FIVEWORDINLINE(0x2F3C, 0x8, 0x51A, 0x7000, 0xA82A);
  175. extern pascal ComponentResult MediaGetOffscreenBufferSize(MediaHandler mh, Rect *bounds, short depth, CTabHandle ctab)
  176.  FIVEWORDINLINE(0x2F3C, 0xA, 0x51B, 0x7000, 0xA82A);
  177. extern pascal ComponentResult MediaSetHints(MediaHandler mh, long hints)
  178.  FIVEWORDINLINE(0x2F3C, 0x4, 0x51C, 0x7000, 0xA82A);
  179. extern pascal ComponentResult MediaGetName(MediaHandler mh, Str255 name, long requestedLanguage, long *actualLanguage)
  180.  FIVEWORDINLINE(0x2F3C, 0xC, 0x51D, 0x7000, 0xA82A);
  181. extern pascal ComponentResult MediaForceUpdate(MediaHandler mh, long forceUpdateFlags)
  182.  FIVEWORDINLINE(0x2F3C, 0x4, 0x51E, 0x7000, 0xA82A);
  183. extern pascal ComponentResult MediaGetDrawingRgn(MediaHandler mh, RgnHandle *partialRgn)
  184.  FIVEWORDINLINE(0x2F3C, 0x4, 0x521, 0x7000, 0xA82A);
  185.  
  186. enum {
  187.     kMediaInitializeSelect        = 0x501,
  188.     kMediaSetHandlerCapabilitiesSelect = 0x502,
  189.     kMediaIdleSelect            = 0x503,
  190.     kMediaGetMediaInfoSelect    = 0x504,
  191.     kMediaPutMediaInfoSelect    = 0x505,
  192.     kMediaSetActiveSelect        = 0x506,
  193.     kMediaSetRateSelect            = 0x507,
  194.     kMediaGGetStatusSelect        = 0x508,
  195.     kMediaTrackEditedSelect        = 0x509,
  196.     kMediaSetMediaTimeScaleSelect = 0x50A,
  197.     kMediaSetMovieTimeScaleSelect = 0x50B,
  198.     kMediaSetGWorldSelect        = 0x50C,
  199.     kMediaSetDimensionsSelect    = 0x50D,
  200.     kMediaSetClipSelect            = 0x50E,
  201.     kMediaSetMatrixSelect        = 0x50F,
  202.     kMediaGetTrackOpaqueSelect    = 0x510,
  203.     kMediaSetGraphicsModeSelect    = 0x511,
  204.     kMediaGetGraphicsModeSelect    = 0x512,
  205.     kMediaGSetVolumeSelect        = 0x513,
  206.     kMediaSetSoundBalanceSelect    = 0x514,
  207.     kMediaGetSoundBalanceSelect    = 0x515,
  208.     kMediaGetNextBoundsChangeSelect = 0x516,
  209.     kMediaGetSrcRgnSelect        = 0x517,
  210.     kMediaPrerollSelect            = 0x518,
  211.     kMediaSampleDescriptionChangedSelect = 0x519,
  212.     kMediaHasCharacteristicSelect = 0x51A,
  213.     kMediaGetOffscreenBufferSizeSelect = 0x51B,
  214.     kMediaSetHintsSelect        = 0x51C,
  215.     kMediaGetNameSelect            = 0x51D,
  216.     kMediaForceUpdateSelect        = 0x51E,
  217.     kMediaGetDrawingRgnSelect    = 0x521
  218. };
  219.  
  220.  
  221. #if PRAGMA_IMPORT_SUPPORTED
  222. #pragma import off
  223. #endif
  224.  
  225. #if PRAGMA_ALIGN_SUPPORTED
  226. #pragma options align=reset
  227. #endif
  228.  
  229. #ifdef __cplusplus
  230. }
  231. #endif
  232.  
  233. #endif /* __MEDIAHANDLERS__ */
  234.